﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Biz_Dal.Biz;
using System.Data.Linq.SqlClient;//SqlMethods.Like(...)

namespace Biz_Dal.Dal
{
    public class DalQuangCao
    {
        //lấy id mới
        internal static int IdMaxQuangCao()
        {
            DalCommon dal = new DalCommon();
            int intIdt = dal.BookIdeas_ShopDataContext.QuangCaos.Max(u => u.idQuangCao);
            return intIdt;
        }

        //Lấy danh sách tất cả các quảng cáo
        internal static List<BizQuangCao> getListQuangCaoAll()
        {
            DalCommon dal = new DalCommon();
            var query = (   from qc in dal.BookIdeas_ShopDataContext.QuangCaos
                            orderby qc.idQuangCao descending
                            select new BizQuangCao
                            {
                                idQuangCao=qc.idQuangCao,
                                HREF=qc.HREF,
                                hinhQuangCao=qc.hinhQuangCao,
                                ngayBD=qc.ngayBD,
                                ngayKT=qc.ngayKT,
                            }
                        ).Distinct<BizQuangCao>();
            return query.ToList<BizQuangCao>();
        }

        //Lấy danh sách tất cả các quảng cáo đang dùng
        internal static List<BizQuangCao> getListQuangCaoAllNowUse()
        {
            DalCommon dal = new DalCommon();
            var query = (from qc in dal.BookIdeas_ShopDataContext.QuangCaos
                         where qc.ngayBD<=DateTime.Now && qc.ngayKT>=DateTime.Now && qc.hinhQuangCao!=null
                         orderby qc.idQuangCao descending
                         select new BizQuangCao
                         {
                             idQuangCao = qc.idQuangCao,
                             HREF = qc.HREF,
                             hinhQuangCao = qc.hinhQuangCao,
                             ngayBD = qc.ngayBD,
                             ngayKT = qc.ngayKT,
                         }
                        ).Distinct<BizQuangCao>();
            return query.ToList<BizQuangCao>();
        }

        //Chi tiết quảng cáo
        internal static BizQuangCao getQuangCaoById(int id)
        {
            DalCommon dal = new DalCommon();
            var querry = (from qc in dal.BookIdeas_ShopDataContext.QuangCaos
                          where qc.idQuangCao == id
                          select new BizQuangCao
                          {
                              idQuangCao = qc.idQuangCao,
                              HREF = qc.HREF,
                              hinhQuangCao = qc.hinhQuangCao,
                              ngayBD = qc.ngayBD,
                              ngayKT = qc.ngayKT,
                          }).Distinct<BizQuangCao>();
            if (querry.Count() == 0)
            {
                return null;
            }
            else
            {
                return querry.Single<BizQuangCao>();
            }
        }

        //Thêm quảng cáo
        internal static void insertQuangCao(BizQuangCao vtDTO)
        {
            DalCommon dal = new DalCommon();
            QuangCao vt = new QuangCao();
            vt.idQuangCao = vtDTO.idQuangCao;
            vt.HREF = vtDTO.HREF;
            vt.hinhQuangCao = vtDTO.hinhQuangCao;
            vt.ngayBD = vtDTO.ngayBD;
            vt.ngayKT = vtDTO.ngayKT;
            dal.BookIdeas_ShopDataContext.QuangCaos.InsertOnSubmit(vt);
            dal.BookIdeas_ShopDataContext.SubmitChanges();
        }

        //Xóa quảng cáo
        internal static void deleteQuangCao(int id)
        {
            DalCommon dal = new DalCommon();
            IEnumerable<QuangCao> list = from vt in dal.BookIdeas_ShopDataContext.QuangCaos
                                     where vt.idQuangCao == id
                                     select vt;
            foreach (QuangCao querry in list)
            {
                dal.BookIdeas_ShopDataContext.QuangCaos.DeleteOnSubmit(querry);
            }
            dal.BookIdeas_ShopDataContext.SubmitChanges();
        }

        //Sửa quảng cáo
        internal static void updateQuangCao(BizQuangCao vtDTO)
        {
            DalCommon dal = new DalCommon();
            var querry = (from vt in dal.BookIdeas_ShopDataContext.QuangCaos
                          where vt.idQuangCao == vtDTO.idQuangCao
                          select vt).FirstOrDefault<QuangCao>();
            querry.idQuangCao = vtDTO.idQuangCao;
            querry.HREF = vtDTO.HREF;
            querry.hinhQuangCao = vtDTO.hinhQuangCao;
            querry.ngayBD = vtDTO.ngayBD;
            querry.ngayKT = vtDTO.ngayKT;
            dal.BookIdeas_ShopDataContext.SubmitChanges();
        }

        //update ảnh
        internal static void updateImage(int id, System.Data.Linq.Binary image)
        {
            DalCommon dal = new DalCommon();
            var querry = (from vt in dal.BookIdeas_ShopDataContext.QuangCaos
                          where vt.idQuangCao == id
                          select vt).FirstOrDefault<QuangCao>();

            querry.hinhQuangCao = image;
            dal.BookIdeas_ShopDataContext.SubmitChanges();
        }

    }
}
